home *** CD-ROM | disk | FTP | other *** search
/ Micro R&D 5: Mand 2000 / Mand 2000 - Micro R&D CD-ROM Vol 5.iso / bonusstuff / simplemand.c < prev    next >
C/C++ Source or Header  |  1993-09-12  |  1KB  |  69 lines

  1. /*
  2.     This  is  a  very  tiny program to demonstrate just how simple it is to
  3. generate  a  Mandelbrot  set.   This  68  line program calculates the outer
  4. Mandelbrot  set  and  displays  it  in ASCII characters on a console.  This
  5. program does not allow you to zoom.  Copyright © 1993 CygnusSoftware.
  6.     */
  7.  
  8. #include "stdio.h"
  9.  
  10. #define MaxIters    60
  11.  
  12. #define    XSIZE        70
  13. #define    YSIZE        22
  14.  
  15. #define    BLACK        -1
  16.  
  17. #define    LEFT    -2.0
  18.  
  19. #define    RIGHT    1.0
  20.  
  21. #define    TOP        1.0
  22.  
  23. #define    BOTTOM    -1.0
  24.  
  25. main(int argc, char *argv[])
  26.  {
  27.  short   x, y, counter;
  28.  long double zr, zi, cr, ci, rsquared, isquared;
  29.  
  30.  for (y = 0; y < YSIZE; y++)
  31.     {
  32.     for (x = 0; x < XSIZE; x++)
  33.         {
  34.         zr = 0.0;
  35.         zi = 0.0;
  36.         cr = LEFT + x * (RIGHT - LEFT) / XSIZE;
  37.         ci = TOP + y * (BOTTOM - TOP) / YSIZE;
  38.         rsquared = zr * zr;
  39.         isquared = zi * zi;
  40.  
  41.  
  42.  
  43.         /* The next eleven lines actually do all of the work. */
  44.         for (counter = 0; rsquared + isquared <= 4.0 &&
  45.                     counter < MaxIters; counter++)
  46.             {
  47.             zi = zr * zi * 2;
  48.             zi += ci;
  49.  
  50.             zr = rsquared - isquared;
  51.             zr += cr;
  52.  
  53.             rsquared = zr * zr;
  54.             isquared = zi * zi;
  55.             }
  56.  
  57.  
  58.  
  59.         if (rsquared + isquared <= 4.0)
  60.             putchar('*');    /* In the set. */
  61.         else
  62.             putchar(' ');    /* Not in the set. */
  63.         }
  64.     putchar('\n');
  65.     }
  66.  puts("SimpleMand: Copyright © 1993 Cygnus Software.\nThat's it.");
  67.  return 0;
  68.  }
  69.